package com.liangzi.service_core.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.liangzi.liangzi_common.exception.Assert;
import com.liangzi.liangzi_common.result.R;
import com.liangzi.liangzi_common.result.ResponseEnum;
import com.liangzi.liangzi_common.util.ArgumentEnum;
import com.liangzi.service_core.pojo.bo.SnowflakeManager;
import com.liangzi.service_core.pojo.entity.VisitPatienter;
import com.liangzi.service_core.pojo.vo.VisitPatienterVO;
import com.liangzi.service_core.service.VisitPatienterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 患者表 前端控制器
 * </p>
 *
 * @author zhj
 * @since 2021-12-13
 */
//@Api(description = "就诊人接口")
@RestController
////@RequestMapping("/web/visitPatienter")
////@Slf4j
public class VisitPatienterController {
//
////    @Autowired
////    private VisitMedicalCardService visitMedicalCardService;
//    @Autowired
//    private VisitPatienterService visitPatienterService;
//    @Autowired
//    private SnowflakeManager snowflakeManager;
//
//
//    // 添加就诊人
//    @ApiOperation("添加就诊人")
//    @PutMapping("/web/insertPatienter/{rd_session}/{medicalCardId}")
//    public R insertPatienter(
//            HttpServletRequest httpServletRequest,
//            @PathVariable String rd_session,
//            @PathVariable String medicalCardId,
//            @RequestBody VisitPatienterVO visitPatienterVO){
//        // 判断是否登录
//        HttpSession session = httpServletRequest.getSession();
//        // 判断session是不是新创建的
//        if (session.isNew()) {
//            return  R.error().message("请重新登录");
//        }
//        String userId = (String) session.getAttribute(rd_session);
//
//
//        VisitPatienter visitPatienter = new VisitPatienter();
//        BeanUtils.copyProperties(visitPatienterVO,visitPatienter,VisitPatienter.class);
//        visitPatienter.setMedicalCardId(medicalCardId);
//        boolean isSave = visitPatienterService.save(visitPatienter);
//        return isSave ? R.ok().message("添加成功") : R.error().message("添加失败");
//
//    }
//    // 添加并设置为默认就诊人
//    @ApiOperation("添加并设置为默认就诊人")
//    @PutMapping("/web/insertPatienterSetDefault/{rd_session}/{medicalCardId}")
//    public R insertPatienterSetDefault(
//            HttpServletRequest httpServletRequest,
//            @PathVariable String medicalCardId,
//            @PathVariable String rd_session,
//            @RequestBody VisitPatienterVO visitPatienterVO){
//        // 判断是否登录
//        HttpSession session = httpServletRequest.getSession();
//        // 判断session是不是新创建的
//        if (session.isNew()) {
//            return  R.error().message("请重新登录");
//        }
//        String userId = (String) session.getAttribute(rd_session);
//
//
//        // 先把所有的就诊人设置为非默认
//        QueryWrapper<VisitPatienter> visitPatienterQueryWrapper = new QueryWrapper<>();
//        visitPatienterQueryWrapper.eq("medical_card_id",medicalCardId);
//        List<VisitPatienter> list = visitPatienterService.list(visitPatienterQueryWrapper);
//        ArrayList<VisitPatienter> visitPatienters = new ArrayList<>();
//        for (VisitPatienter visitPatienter : list) {
//            visitPatienter.setCurrentPatienter(0);
//            visitPatienters.add(visitPatienter);
//        }
//        boolean isUpdate = visitPatienterService.updateBatchById(visitPatienters);
//        if(isUpdate){
//            // 添加并设置默认
//            VisitPatienter visitPatienter = new VisitPatienter();
//            BeanUtils.copyProperties(visitPatienterVO,visitPatienter,VisitPatienter.class);
//            visitPatienter.setMedicalCardId(medicalCardId);
//            visitPatienter.setCurrentPatienter(1);
//            boolean isSave = visitPatienterService.save(visitPatienter);
//
//            return isSave ? R.ok().message("添加成功") : R.error().message("添加失败");
//
//        }
//        return  R.error().message("添加失败");
//    }
//
//    // 更改默认就诊人
//    @ApiOperation("更改默认就诊人")
//    @PutMapping("/web/updateDefaultPatienter/{rd_session}/{medicalCardId}/{patienterId}")
//    public R updateDefaultPatienter(
//            HttpServletRequest httpServletRequest,
//            @PathVariable String rd_session,
//            @PathVariable String medicalCardId,
//            @PathVariable String patienterId){
//        // 判断是否登录
//        HttpSession session = httpServletRequest.getSession();
//        // 判断session是不是新创建的
//        if (session.isNew()) {
//            return  R.error().message("请重新登录");
//        }
//        String userId = (String) session.getAttribute(rd_session);
//
//        // 先把所有的就诊人设置为非默认
//        QueryWrapper<VisitPatienter> visitPatienterQueryWrapper = new QueryWrapper<>();
//        visitPatienterQueryWrapper.eq("medical_card_id",medicalCardId);
//        List<VisitPatienter> list = visitPatienterService.list(visitPatienterQueryWrapper);
//        ArrayList<VisitPatienter> visitPatienters = new ArrayList<>();
//        for (VisitPatienter visitPatienter : list) {
//            visitPatienter.setCurrentPatienter(0);
//            visitPatienters.add(visitPatienter);
//        }
//        boolean isUpdate = visitPatienterService.updateBatchById(visitPatienters);
//        if(isUpdate){
//            VisitPatienter patienter = visitPatienterService.getById("patienterId");
//            patienter.setCurrentPatienter(1);
//            boolean isSuccess = visitPatienterService.updateById(patienter);
//            return isSuccess ? R.ok().message("修改成功") : R.error().message("修改失败");
//        }
//        return  R.error().message("添加失败");
//
//    }
//
//

}

